heavily inspired by my p24 cycles assembly